package com.liliudong.template.common.convert.sys;

import com.liliudong.template.common.dto.sys.SysRoleAddOrUpdateDTO;
import com.liliudong.template.common.entity.sys.SysRole;
import com.liliudong.template.common.vo.sys.SysRoleBaseVO;
import com.liliudong.template.common.vo.sys.SysRoleDetailVO;
import com.liliudong.template.common.vo.sys.SysRolePageVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 角色转换器
 *
 * @author ldli5
 * @classname SysRoleConvert
 * @date 2024/6/20-13:52
 */
@Mapper
public interface SysRoleConvert {

	SysRoleConvert INSTANCE = Mappers.getMapper(SysRoleConvert.class);

	/**
	 * 到系统角色
	 *
	 * @param sysRoleAddOrUpdateDTO sys角色添加或更新dto
	 * @return {@link SysRole }
	 */
	SysRole dto2Entity(SysRoleAddOrUpdateDTO sysRoleAddOrUpdateDTO);

	/**
	 * 到系统角色页volist
	 *
	 * @param sysRoleList sys角色列表
	 * @return {@link List }<{@link SysRolePageVO }>
	 */
	List<SysRolePageVO> entity2PageVo(List<SysRole> sysRoleList);

	/**
	 * 实体2基本vo
	 *
	 * @param sysRoleList sys角色列表
	 * @return {@link List }<{@link SysRoleBaseVO }>
	 */
	List<SysRoleBaseVO> entity2BaseVo(List<SysRole> sysRoleList);

	/**
	 * 实体2细节vo
	 *
	 * @param sysRole sys角色
	 * @return {@link SysRoleDetailVO }
	 */
	SysRoleDetailVO entity2DetailVO(SysRole sysRole);
}
